package com.cjhme.system.impl.dao.position.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.cjhme.common.model.base.DataPaging;
import com.cjhme.common.model.base.TreeNodeBean;
import com.cjhme.common.model.position.PositionBean;
import com.cjhme.system.impl.base.dao.BaseDao;
import com.cjhme.system.impl.dao.position.PositionDao;

/**
*
* <p>
* Title: PositionDaoImpl.java
* </p>
* Description: 岗位
* <p>
* Modify histoty:
*
* @author cjh
* @version 1.0
*/
@Repository("system.positionDao")
public class PositionDaoImpl extends BaseDao implements PositionDao {

	/**
	 * 查询所有岗位结构
	 * 
	 * @return
	 */
	public List<TreeNodeBean> queryPositionList(){
		return this.getSqlSessionTemplate().selectList("com.cjhme.system.core.dao.position.PositionDao.queryPositionList");
	}
	
	
	/**
	 * 根据条件查询岗位
	 * @param parameter
	 * @return
	 */
	public List<TreeNodeBean> queryPositionByCondition(Map<String,Object> parameter){
		return this.getSqlSessionTemplate().selectList("com.cjhme.system.core.dao.position.PositionDao.queryPositionByCondition", parameter);
	}
	
	/**
	 * 根据条件分页查询岗位
	 * @param parameter
	 * @return
	 */
	public DataPaging<Object> queryPositionByConditionPaging(DataPaging<Object> pageParameter){
		return this.selectPaging("com.cjhme.system.core.dao.position.PositionDao.queryPositionByConditionPaging", pageParameter);
	}
	
	/**
	 * 判断岗位是否存在
	 * @param parameter
	 * @return
	 */
	public int queryPositionIsExists(Map<String,Object> parameter) {
		return this.getSqlSessionTemplate().selectOne("com.cjhme.system.core.dao.position.PositionDao.queryPositionIsExists",parameter);
	}
	
	/**
	 * 添加岗位
	 * @param parameter
	 * @return
	 */
	public int savePosition(Map<String,Object> parameter) {
		return this.getSqlSessionTemplate().insert("com.cjhme.system.core.dao.position.PositionDao.savePosition",parameter);
	}
	
	/**
	 * 根据id查询岗位 
	 * @param parameter
	 * @return
	 */
	public PositionBean queryPositionByPositionId(Map<String,Object> parameter) {
		return this.getSqlSessionTemplate().selectOne("com.cjhme.system.core.dao.position.PositionDao.queryPositionByPositionId",parameter);
	}
	
	/**
	 * 根据id修改岗位
	 * @param parameter
	 * @return
	 */
	public int updatePositionByPositionId(Map<String,Object> parameter) {
		return this.getSqlSessionTemplate().update("com.cjhme.system.core.dao.position.PositionDao.updatePositionByPositionId",parameter);
	}
	
	/**
	 * 根据ids删除岗位
	 * @param parameter
	 * @return
	 */
	public int deletePositionByIds(Map<String,Object> parameter) {
		return this.getSqlSessionTemplate().update("com.cjhme.system.core.dao.position.PositionDao.deletePositionByIds",parameter);
	}
	
	
	/**
	 * 根据id移动岗位
	 * @param parameter
	 * @return
	 */
	public int updatePositionParentPositionIdById(Map<String,Object> parameter) {
		return this.getSqlSessionTemplate().update("com.cjhme.system.core.dao.position.PositionDao.updatePositionParentPositionIdById",parameter);
	}
	
	/**
	 * 根据组织ids删除岗位用户映射
	 * @param parameter
	 * @return
	 */
	public int deletePositionUserMappingByIds(Map<String,Object> parameter) {
		return this.getSqlSessionTemplate().update("com.cjhme.system.core.dao.position.PositionDao.deletePositionUserMappingByIds",parameter);
	}
}
